-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility rework 2 #64
base: main
Are you sure you want to change the base?
Conversation
* WineStartupType (enum) -> IsManagedWine (bool)
* got rid of #if FLATPAK * got rid of #if WINE_XIV_DISTRO for wine packages * added a few UI tweaks
…nd leave custom wine
* Move to CoreEnvironmentSettings so it only gets called once per session
d4df579
to
48ac1d9
Compare
Updated for the XL.Common.Unix merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Conceptually I find it makes more sense to have OSInfo
live in XIVLauncher.Common
(this also gets rid of passing around that extra Flatpak bool).
Given that XL changes are rather hard though, it might be worth to put it for now into something like XIVLauncher.Common2
, which would also allow to extend the existing interface more easily in the future (including auto-launch features)
Honestly, OSInfo could just be renamed DistroInfo, because that's all it's really doing. Yeah, it has checks for other OSes, but those aren't actually used for anything. It could just as easily be an IsLinux bool instead of an a platform enum. As for the flatpak bool, tbh it's not used for anything either. I mainly added it just in case, but never found any reason to use it in CompatibilityTools. All of the flatpak stuff has to be worked out before it gets passed to CompatibilityTools anyway. |
If the Flatpak bool is truly not needed, then it should probably just be removed honestly. But even as DistroInfo it does make much more sense to have it conceptually there (and could for example greatly simplify In this MR as it is right now, it is used however much more like a more advanced |
* Rename to LinuxInfo * Add file find functions to LinuxInfo * Add library search paths to LinuxInfo * Change Platform object to IsLinux bool * Changed IsFlatpak bool to Container enum (flatpak, snap, none) * Reworked DxvkSettings.IsMangoHudInstalled()
I didn't realize there was a way to limit recursion in GetFiles(), so I was using linux find. EnumerationOptions was the solution: * set RecurseSubdirectories = true * set MaxRecursionDepth
* Move library path handling to a helper function * Move HttpClient.Dispose() below Veldrid resource cleanup This seems to fix the occasional memory errors on close These errors were only visible on the terminal, and harmless.
I've moved OSInfo into XL.Common.Unix and renamed it LinuxInfo. I've also added library paths to LinuxInfo, so that there's a List of paths to search for common library files. I've adjusted the MangoHudIsInstalled function to make use of it, and plan to use it for finding DLSS libraries in the future, when that gets added. I've also added Snap handling, since it's possible XLCore will be run inside of Snap Steam using XLM on Ubuntu distros. |
Replacement compatibility rework to go with PR goatcorp/FFXIVQuickLauncher#1366.
This allows for the selecting of different wine versions, different dxvk versions, and hud options to all be managed on the XL.Core side. The values are then passed to CompatibilityTools. This primarily allows for updating wine or dxvk without touching XL.Common.Unix.
Replaces #59
Here's a flatpak of the launcher, for testing: https://github.com/rankynbass/XIVLauncher.Core/releases/tag/compatrework-v2